import axios from "axios";
//使用config作为传入对象url等
//为了获取以外的数据传入一个回调函数把值带出去交给外面需要的函数处理
export function request(config, success, failure) {
    // 1、创建axios的实例
    const instance = axios.create({
        baseURLL:'http',//基本请求信息
        timeout: 5000//基本请求时间
    })
    instance(config)
     .then(res => {
         //console.log(res)
         success(res)
     })
     .catch(err => {
         //console.log(err)
         failure(err)
     })

}
export function request(config) {
    // 1、创建axios的实例
    const instance = axios.create({
        baseURLL:'http',//基本请求信息
        timeout: 5000//基本请求时间
    })
    instance(config.baseConfig)
     .then(res => {
         //console.log(res)
         config.success(res)
     })
     .catch(err => {
         //console.log(err)
         config.failure(err)
     })

}

export function request(config) {
    // 1、创建axios的实例
    return new Promise ((resolve, reject) => {
        const instance = axios.create({
        baseURLL:'http',//基本请求信息
        timeout: 5000//基本请求时间
    })
    instance(config)
     .then(res => {
         //console.log(res)
         //config.success(res)
         resolve(res)
     })
     .catch(err => {
         //console.log(err)
         //config.failure(err)
         reject(err)
     })
    })
}//使用promise可以省略回调函数传值，数据可以直接通过.then  .catch拿到

//最终使用方案
export function request(config) {
    // 1、创建axios的实例
    
        const instance = axios.create({
        baseURLL:'http',//基本请求信息
        timeout: 5000//基本请求时间
    })

    //2.axios的拦截器
    //请求拦截 拿到请求
    instance.interceptors.request.use(config => {
        console.log(config)
        //处理拦截到的信息，比如信息更改或者适配服务器,比如用户还未登录拦截界面跳转登录界面，等用户登录才跳转正确界面
        
        return config//拦截完毕一定要返回出去
    }, err => {

    });
    //响应拦截 拿到结果
    instance.interceptors.response.use(res => {
        return res.data//只要data(或者需要的)不要config里免得其他东西
    }, err=>{
        
    });
    return instance(config) //直接返回Promise对象省略后面的
    //  .then(res => {
    //      //console.log(res)
    //      //config.success(res)
    //      resolve(res)
    //  })
    //  .catch(err => {
    //      //console.log(err)
    //      //config.failure(err)
    //      reject(err)
    //  })
}
